<?php
    
/**
 * **控制器
 * @author 杨帆
 */
class TypeController extends AuthController{
    private $model;
    
    /**
     * 自动执行方法，应用的是框架的自动执行方法;
     */
    public function __init(){
       //每次运行控制器都会打开扩展模型type;
       $this->model = K('type');
    }
    
    /**
     * 类型列表显示
     */
    public function index(){
            //删除操作
            if(IS_POST){
                //如果post中传过来的数据为空,默认给一个空数组.防止数据报错.
                $tids = Q('post.tid',array());
            if(!$tids){
                //如果为空数组,则提示请选择再删除;
                $this->error('请选择再删除');
            }
                foreach ($tids as $tid) {
                    //删除数据;
                    $this->model->where('tid='. $tid)->delete();
                }
            //提示信息;
            $this->success('删除成功');
            }
            
        //分页类的使用**
        //数据的总数
        $total = $this->model->count();
        //1.总数 2.每页显示的文章数 3.显示的页面数量
        $pageObj = new Page($total,5,3);
        //显示分页,show为方法;
        $page = $pageObj->show();
        //分配数据
        $this->assign('page',$page);
        //处理数据,limit()为固定写法;
        $data = $this->model->limit($pageObj->limit())->all();
        //分配数据
        $this->assign('data',$data);
        //显示视图
        $this->display(); 
        
    }
    
    /*
     * 添加类型
     */
    public function add(){
        //如果有数据提交
        if(IS_POST){
            //利用框架中的q函数,提交类型名称;
            $name = Q('post.name');
            //因为允许用户一次性输入多个类型名称,按照逗号拆分成数组;
            $arr = explode(",", $name);
            //调用模型的添加
            if(!$this->model->addData($arr)){
                $this->error($this->model->error);
            }
            $this->success('添加成功',U('index'));
        }
        $this->display();
    }
    
    /**
     * 编辑类型
     */
    public function edit(){
        //获取元素主键id(tid);
        $tid = Q('get.tid',0,'intval');
        //有数据输入时
        if(IS_POST){
            //执行editData方法,当editData方法返回false时,取反"!"为真,证明有错误,输出model的错误值信息;
            if(!$this->model->editData($tid)){
                $this->error($this->model->error);
            }
            //编辑成功,提示信息
            $this->success('编辑成功',U('index'));
        }
        //获得旧数据
        $oldData = $this->model->where("tid={$tid}")->find();
        //将旧数据分配到html;
        $this->assign('oldData',$oldData);
        //显示视图
        $this->display();
    }

    /**
    * 删除类型
    */
    public function del(){
        //获取元素主键id(tid);
        $tid = Q('get.tid',0,'intval');
        //查询类型属性表中,该类型是否有数据,找出其中一条;
        $data = M('attribute')->where("type_tid={$tid}")->find();
        //判断只要有一条属性数据,就不允许客户删除该类型;
        if($data){
            $this->error('该类型下面有属性，请先删除属性。');
        }
        //删除分类
        $this->model->where("tid={$tid}")->delete();
        //1.提示信息 2.跳转地址 3.跳转时间
        $this->success('删除成功',U('index'),1);
     }
}
 
 
 
 
 
 
 
 
 
 
 
